From b26d74146b10c6021a781631a236f3b415c42370 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Fri, 14 Mar 2025 21:10:18 +0800 Subject: [PATCH] gui/macOS: Avoid UB in edge cases where there is no matching account state for a domain Do not assume existence of an account for a given domain identifier -- users can modify the config in unexpected ways Signed-off-by: Claudio Cambra --- src/gui/macOS/fileproviderdomainmanager_mac.mm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/gui/macOS/fileproviderdomainmanager_mac.mm b/src/gui/macOS/fileproviderdomainmanager_mac.mm index 7af19491d..233d5adac 100644 --- a/src/gui/macOS/fileproviderdomainmanager_mac.mm +++ b/src/gui/macOS/fileproviderdomainmanager_mac.mm @@ -27,6 +27,12 @@ #include "gui/accountmanager.h" #include "libsync/account.h" +namespace OCC { + +Q_LOGGING_CATEGORY(lcMacFileProviderDomainManager, "nextcloud.gui.macfileproviderdomainmanager", QtInfoMsg) + +} + // Ensure that conversion to/from domain identifiers and display names // are consistent throughout these classes namespace { @@ -118,7 +124,8 @@ QString accountIdFromDomainId(NSString * const domainId) return account->userIdAtHostWithPort(); } } - Q_UNREACHABLE(); + qCWarning(OCC::lcMacFileProviderDomainManager) << "Could not find account id for domain id:" << qDomainId; + return {}; } API_AVAILABLE(macos(11.0)) @@ -131,8 +138,6 @@ inline QString accountIdFromDomain(NSFileProviderDomain * const domain) namespace OCC { -Q_LOGGING_CATEGORY(lcMacFileProviderDomainManager, "nextcloud.gui.macfileproviderdomainmanager", QtInfoMsg) - namespace Mac { class API_AVAILABLE(macos(11.0)) FileProviderDomainManager::MacImplementation -- 2.30.2